package controllers

import (
	"dxxgin/models"
	"dxxgin/tool"
	"fmt"
	"time"

	"github.com/gin-gonic/gin"
)

func ShangyexianTest(c *gin.Context) {
	//当前系统时间，格式：年月日时分秒
	currentTime := time.Now().Format("2006-01-02 15:04:05")

	c.JSONP(200, gin.H{"code": 200, "msg": "successa111", "data": currentTime})
}

func GetShangyexianInfo(c *gin.Context) {
	id := c.Query("id") // 通过查询字符串获取 id

	// 在这里执行你的业务逻辑，使用 id 进行查询或其他操作
	res, err := models.GetShangyexianInfo(tool.StringToInt(id))
	if err != nil {
		c.JSONP(200, gin.H{"code": 40001, "msg": tool.GetMsg(40001, "暂无数据"), "err": fmt.Sprint(err), "id": id})
	} else {
		c.JSONP(200, gin.H{"code": 0, "msg": tool.GetMsg(0, "查询成功"), "data": res, "id": id})
	}
}

func ShangyexianList(c *gin.Context) {
	// 获取 POST 提交的参数
	keyword := c.PostForm("keyword")
	limit := c.DefaultPostForm("limit", "10")

	// 初始化查询条件
	maps := make(map[string]interface{})

	// 如果 keyword 非空，加入模糊查询条件
	if keyword != "" {
		maps["customer_name LIKE ?"] = "%" + keyword + "%"
	}

	data := make(map[string]interface{})

	// 调用 GetShangyexianTotal 函数获取记录的总数
	total, err := models.GetShangyexianTotal(maps)
	if err != nil {
		// 在发生错误时处理错误，比如返回错误信息给客户端
		c.JSON(500, gin.H{"error": "Failed to get total count"})
		return
	}

	data["total"] = total

	// 获取数据列表
	res := models.ShangyexianList(tool.DefaultGetOffset(c), tool.StringToInt(limit), maps)

	// 返回结果
	c.JSONP(200, gin.H{"code": 0, "msg": tool.GetMsg(0, "查询成功"), "data": data, "list": res, "params": maps, "a": tool.StringToInt(limit)})
}

// 获取当前表的所有数据
func GetAllShangyexians(c *gin.Context) {
	// 调用模型中的函数获取所有数据
	shangyexians, err := models.GetAllShangyexian()
	if err != nil {
		// 如果出现错误，返回错误信息
		c.JSON(500, gin.H{"error": err.Error()})
		return
	}

	// 返回成功响应
	c.JSON(200, gin.H{"data": shangyexians})
}
